Private Sub Worksheet_Change(ByVal Target As Range)

Dim FirstCell As String
Dim tbl As ListObject

    Application.ScreenUpdating = False

    For Each tbl In ActiveSheet.ListObjects
    
        tbl.DataBodyRange.Cells(1, 1).Select
    
        FirstCell = ActiveCell.Address
      
            With tbl.Sort
                .SortFields.Clear
            End With
        
            With tbl.Sort
                .SortFields.Add Key:=Range(FirstCell), _
                 SortOn:=xlSortOnValues, _
                 Order:=xlAscending, _
                 DataOption:=xlSortNormal
            End With
        
            With tbl.Sort
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
        
    Next tbl

    Application.ScreenUpdating = True

End Sub